/**
 *************************************************************************************************************************
 * @file    main.c
 * @brief   本示例演示了通过OLED显示和按键控制PAN3029/3060进行数据收发功能。
 * @version V1.0.1
 * @date    2025-08-01
 * @author  Panchip Team
 * @note    该示例功能描述如下：
 * |------------------|----------------------------------------------|--------------------------------------------------|
 * | 名称/功能        | 描述                                         | 设置方法                                         |
 * |------------------|----------------------------------------------|--------------------------------------------------|
 * | PW               | 发射功率，1-22 档位                          | 按下 KEY1 保持，单击 KEY6 进行切换               |
 * |------------------|----------------------------------------------|--------------------------------------------------|
 * | Mode             | A: 单包发送                                  | TX 模式下，单击 KEY4 进行切换                    |
 * |                  | B: 连续发送 100 包                           |                                                  |
 * |                  | C: 连续发送 9999 包                          |                                                  |
 * |                  | D: 进入单载波测试模式                        |                                                  |
 * |------------------|----------------------------------------------|--------------------------------------------------|
 * | CR               | 编码率支持 CR4/5、CR4/6、CR4/7、CR4/8        | 按下 KEY1 保持，单击 KEY4 进行切换               |
 * |------------------|----------------------------------------------|--------------------------------------------------|
 * | FQ               | 工作频点                                     | 按下 KEY1 保持，单击 KEY3 进行切换               |
 * |------------------|----------------------------------------------|--------------------------------------------------|
 * | BW               | 信道带宽支持 500KHz、250KHz、125KHz、62.5KHz | 单击 KEY6 进行切换                               |
 * |------------------|----------------------------------------------|--------------------------------------------------|
 * | SF               | 扩频因子，支持 5/6/7/8/9/10/11/12            | 单击 KEY5 进行切换                               |
 * |------------------|----------------------------------------------|--------------------------------------------------|
 * | PL               | 发送数据长度，10-240 字节，10 字节/步进      | 按下 KEY1 保持，单击 KEY5 进行切换               |
 * |------------------|----------------------------------------------|--------------------------------------------------|
 * | 发送数据         | 开始发送数据包                               | 单击 KEY3 即可按照 Mode 进行发送                 |
 * |------------------|----------------------------------------------|--------------------------------------------------|
 * | 清除收发包计数   | 清除 TX 或 RX 的收发包计数                   | 单击 KEY2                                        |
 * |------------------|----------------------------------------------|--------------------------------------------------|
 * | 收发切换         | 设备进行 TX 和 RX 模式切换                   | 通过拨码开关切换，每次切换后需按下 KEY7 复位     |
 * |------------------|----------------------------------------------|--------------------------------------------------|
 * Copyright (C) 2025 Panchip Technology Corp. All rights reserved.
 **************************************************************************************************************************
 */

#include "hc32_ddl.h"
#include "pan_rf.h"
#include "oled.h"
#include "display.h"
#include "bsp.h"
#include "key_handle.h"
#include "u8g2.h"
uint32_t g_UserTxMode = 0;
extern u8g2_t u8g2;
extern uint8_t tx_carrywave_flag;
void draw(u8g2_t *u8g2)
{
    u8g2_SetFontMode(u8g2, 1); /*字体模式选择*/
    u8g2_SetFontDirection(u8g2, 0); /*字体方向选择*/
    u8g2_SetFont(u8g2, u8g2_font_inb24_mf); /*字库选择*/
    u8g2_DrawStr(u8g2, 0, 20, "U");
    
    u8g2_SetFontDirection(u8g2, 1);
    u8g2_SetFont(u8g2, u8g2_font_inb30_mn);
    u8g2_DrawStr(u8g2, 21,8,"8");
        
    u8g2_SetFontDirection(u8g2, 0);
    u8g2_SetFont(u8g2, u8g2_font_inb24_mf);
    u8g2_DrawStr(u8g2, 51,30,"g");
    u8g2_DrawStr(u8g2, 67,30,"\xb2");
    
    u8g2_DrawHLine(u8g2, 2, 35, 47);
    u8g2_DrawHLine(u8g2, 3, 36, 47);
    u8g2_DrawVLine(u8g2, 45, 32, 12);
    u8g2_DrawVLine(u8g2, 46, 33, 12);
  
    u8g2_SetFont(u8g2, u8g2_font_4x6_tr);
    u8g2_DrawStr(u8g2, 1,54,"github.com/olikraus/u8g2");
}
/**
  * @brief  The application entry point.
  * @retval int
  */
int32_t main(void) {
    BSP_ClockInit();
    BSP_SystickInit(1000u);
    BSP_GpioInit();
    
    u8g2_init();
    
    
    // 显示一个简单图案
    u8g2_ClearBuffer(&u8g2);
    u8g2_DrawBox(&u8g2, 10, 10, 50, 30);  // 绘制矩形
    u8g2_SendBuffer(&u8g2);
	  Ddl_Delay1ms(1000);
    u8g2_ClearBuffer(&u8g2);
    draw(&u8g2); 
    u8g2_SendBuffer(&u8g2);
    while(1);
}
